package br.com.usapre.faces;

import java.io.Serializable;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.login.business.SenhaBusiness;
import br.com.login.data.SolicitacaoNovaSenha;
import br.com.login.faces.SessionUsaPreBean;
import br.com.utilidades.faces.SimpleMessageBean;

/**
 * @version 1.0.0
 * @since November,21 2013
 * @author Eduardo Francisco Barbosa
 */
@Component
@Scope("view")
public class GerarNovaSenhaBean extends SimpleMessageBean implements Serializable {

    private static final long serialVersionUID = 4828468128758425543L;

    private SessionUsaPreBean sessionUsaPreBean;

    private SenhaBusiness senhaBusinessImpl;

    private String novaSenha;
    private String confirmacaoNovaSenha;

    private Boolean ok;
    private String msg;

    private SolicitacaoNovaSenha solicitacao;

    private Boolean senhaEnviada;

    /**
     * Contrutor
     */
    @Autowired
    public GerarNovaSenhaBean(SessionUsaPreBean sessionUsaPreBean, SenhaBusiness senhaBusinessImpl) {

	this.sessionUsaPreBean = sessionUsaPreBean;
	this.senhaBusinessImpl = senhaBusinessImpl;

	reset();
    }

    /**
     * reset
     */
    public void reset() {
	try {
	    solicitacao = senhaBusinessImpl.buscarParceiroouUsuarioPorCodigo(sessionUsaPreBean.getIdGerarSenha());
	    ok = Boolean.TRUE;

	    senhaEnviada = Boolean.FALSE;

	} catch (Exception e) {
	    ok = Boolean.FALSE;
	    msg = e.getMessage();
	}
    }

    /**
     * alterarSenha
     */
    public void alterarSenha() {

	if (novaSenha.equals(confirmacaoNovaSenha)) {
	    System.out.println("Senha Alterada");

	    senhaEnviada = Boolean.TRUE;
	} else {
	    String senhasIguais = super.getMensagem("MN_senhas_precisam_iguais");
	    enviaMensagem(senhasIguais, senhasIguais);
	}

    }

    // SETS AND GETS
    public String getNovaSenha() {
	return novaSenha;
    }

    public void setNovaSenha(String novaSenha) {
	this.novaSenha = novaSenha;
    }

    public String getConfirmacaoNovaSenha() {
	return confirmacaoNovaSenha;
    }

    public void setConfirmacaoNovaSenha(String confirmacaoNovaSenha) {
	this.confirmacaoNovaSenha = confirmacaoNovaSenha;
    }

    public Boolean getOk() {
	return ok;
    }

    public void setOk(Boolean ok) {
	this.ok = ok;
    }

    public SolicitacaoNovaSenha getSolicitacao() {
	return solicitacao;
    }

    public void setSolicitacao(SolicitacaoNovaSenha solicitacao) {
	this.solicitacao = solicitacao;
    }

    public String getMsg() {
	return msg;
    }

    public void setMsg(String msg) {
	this.msg = msg;
    }

    public Boolean getSenhaEnviada() {
	return senhaEnviada;
    }

    public void setSenhaEnviada(Boolean senhaEnviada) {
	this.senhaEnviada = senhaEnviada;
    }

}
